As GPUs (ou Graphics Processing Unit) foram inicialmente desenvolvidas com o propósito de se aumentar a eficiência e o poder de processamento gráfico para tarefas de renderizacão. Em um momento posterior, as GPUs apresentaram- se e apresentam-se como um hardware de processamento versátil, com ganho massivo de desempenho, representando uma possibilidade real na busca de soluções para processamento em grandes volumes de dados.
Os avanços do hardware dos computadores na atualidade permitem a uma única máquina uma capacidade de processamento que em anos anteriores apenas era possível em um cluster de computadores. Adicionalmente, muitos métodos numéricos são computacionalmente intensivos e requerem muito mais operações de processamento do que operações de entrada e saída. Desta forma, como um desafio que se apresenta, temos a reimplementação de algoritmos numéricos objetivando-se uma execução eficiente nas novas arquiteturas.
No presente Curso, apresentaremos um breve histórico sobre o desenvolvimento das GPUs, abordaremos de forma introdutória conceitos vistos no estudo de arquiteturas atuais, assim como primeiros exemplos de implementações em CUDA C/C++.
Público Interno: Discentes dos Cursos de Matemática Aplicada e Computacional da UFRRJ – IM e ICE, com experiência em linguagem de programação C.
Público Externo: Discentes dos Cursos de Matemática Aplicada e Computacional de IFES no Rio de Janeiro, com experiência em linguagem de programação C.